<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  
  

  
  
  
  
  
  
  <title>Hexo</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <meta property="og:type" content="website">
<meta property="og:title" content="Hexo">
<meta property="og:url" content="http://yoursite.com/index.html">
<meta property="og:site_name" content="Hexo">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Hexo">
  
  
    <link rel="icon" href="/css/images/favicon.ico">
  
  <link rel="stylesheet" href="/css/style.css">
  

  
  <!-- baidu webmaster push -->
  <script src='//push.zhanzhang.baidu.com/push.js'></script>
</head>
<body class="home blog custom-background custom-font-enabled single-author">
  <div id="page" class="hfeed site">
      <header id="masthead" class="site-header" role="banner">
    <hgroup>
      <h1 class="site-title">
        <a href="/" title="Hexo" rel="home">Hexo</a>
      </h1>
      
        <script type="text/javascript" src="http://api.hitokoto.us/rand?encode=js&charset=utf-8"></script>
        <h2 class="site-description"><script>hitokoto();</script></h2>
      
    </hgroup>

    <nav id="site-navigation" class="main-navigation" role="navigation">
            <button class="menu-toggle">菜单</button>
            <a class="assistive-text" href="/#content" title="跳至内容">跳至内容</a><!--TODO-->
            <div class="menu-main-container">
                <ul id="menu-main" class="nav-menu">
                
                    <li class="menu-item menu-item-type-post_type menu-item-object-page"><a href="/">Home</a></li>
                
                    <li class="menu-item menu-item-type-post_type menu-item-object-page"><a href="/archives">Archives</a></li>
                
                </ul>
            </div>
    </nav>
</header>
      <div id="main" class="wrapper">
        <div id="primary" class="site-content"><div id="content" role="main">
  
    <article id="post-hello-world" class="post-hello-world post type-post status-publish format-standard hentry">
    <!---->

      <header class="entry-header">
        
        
  
    <h1 class="entry-title">
      <a class="article-title" href="/2017/04/05/hello-world/">Hello World</a>
    </h1>
  

        
        <div class="comments-link">
            
            <a href="javascript:void(0);" data-url="http://yoursite.com/2017/04/05/hello-world/" data-id="cj14ezap20000f0o0j73ggj11" class="leave-reply bdsharebuttonbox" data-cmd="more">Share</a>
        </div><!-- .comments-link -->
      </header><!-- .entry-header -->

    <div class="entry-content">
      
        <p>Welcome to <a href="https://hexo.io/" target="_blank" rel="external">Hexo</a>! This is your very first post. Check <a href="https://hexo.io/docs/" target="_blank" rel="external">documentation</a> for more info. If you get any problems when using Hexo, you can find the answer in <a href="https://hexo.io/docs/troubleshooting.html" target="_blank" rel="external">troubleshooting</a> or you can ask me on <a href="https://github.com/hexojs/hexo/issues" target="_blank" rel="external">GitHub</a>.</p>

      
    </div><!-- .entry-content -->

    <footer class="entry-meta">
    <a href="/2017/04/05/hello-world/">
    <time datetime="2017-04-04T17:03:01.692Z" class="entry-date">
        2017-04-05
    </time>
</a>
    
    
    </footer>
</article>






  
    <article id="post-memcached" class="post-memcached post type-post status-publish format-standard hentry">
    <!---->

      <header class="entry-header">
        
        
  
    <h1 class="entry-title">
      <a class="article-title" href="/2017/04/05/memcached/">memcached</a>
    </h1>
  

        
        <div class="comments-link">
            
            <a href="javascript:void(0);" data-url="http://yoursite.com/2017/04/05/memcached/" data-id="cj14ezap70001f0o0o303hyuj" class="leave-reply bdsharebuttonbox" data-cmd="more">Share</a>
        </div><!-- .comments-link -->
      </header><!-- .entry-header -->

    <div class="entry-content">
      
        <h1 id="第四章节-工作区管理（时光机）"><a href="#第四章节-工作区管理（时光机）" class="headerlink" title="第四章节 工作区管理（时光机）"></a>第四章节 工作区管理（时光机）</h1><h2 id="4-1-status-amp-amp-diff"><a href="#4-1-status-amp-amp-diff" class="headerlink" title="4-1 status &amp;&amp; diff"></a>4-1 status &amp;&amp; diff</h2><p>首先我们要明白什么是工作区？一句话工作区即是你平时干活的目录，也里我的也就是bingproject</p>
<p>现在，是时候继续工作了，开始工作前，我们看下工作目录是否干净，这里使用 <code>git status</code></p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">$ git status</div><div class="line">On branch master</div><div class="line">nothing to commit, working directory clean</div></pre></td></tr></table></figure>
<p>说明：<code>git status</code>命令可以让我们时刻掌握仓库当前的状态，<br>这是意思，也就是说当前所在分支是master并且没有什么要提交工作目录是干净的，于是我们开始干活，我们继续修改readme.txt文件，改成如下内容：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">git is easy use and free</div></pre></td></tr></table></figure>
<p>现在，运行git status命令看看结果：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div></pre></td><td class="code"><pre><div class="line">$ git status</div><div class="line">On branch master</div><div class="line">Changes not staged for commit:</div><div class="line">  (use &quot;git add &lt;file&gt;...&quot; to update what will be committed)</div><div class="line">  (use &quot;git checkout -- &lt;file&gt;...&quot; to discard changes in working directory)</div><div class="line"></div><div class="line">        modified:   readme.txt</div><div class="line"></div><div class="line">no changes added to commit (use &quot;git add&quot; and/or &quot;git commit -a&quot;)</div></pre></td></tr></table></figure>
<p>说明：上面的命令告诉我们，readme.txt被修改过了，但还没有准备提交的修改。</p>
<p>虽然Git告诉我们readme.txt被修改了，但如果能看看具体修改了什么内容，这时需要用<code>git diff</code>这个命令看看：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div></pre></td><td class="code"><pre><div class="line">$ git diff readme.txt</div><div class="line">diff --git a/readme.txt b/readme.txt</div><div class="line">index 912a14b..e646828 100644</div><div class="line">--- a/readme.txt</div><div class="line">+++ b/readme.txt</div><div class="line">@@ -1 +1,2 @@</div><div class="line"> this is test bingproject.</div><div class="line">+git is easy use and free.</div></pre></td></tr></table></figure>
<p>说明：走点心，用心的你便可以发现其中的变化。</p>
<p><strong>小结:</strong></p>
<ul>
<li><p>要随时掌握工作区的状态，使用<code>git status</code>命令。</p>
</li>
<li><p>如果<code>git status</code>告诉你有文件被修改过，用<code>git diff</code>可以查看修改内容。</p>
</li>
</ul>
<hr>
<h2 id="4-2-版本回退"><a href="#4-2-版本回退" class="headerlink" title="4-2 版本回退"></a>4-2 版本回退</h2><p>现在，已经学会了修改文件，然后把修改提交到Git版本库，作为巩固，再联练习一遍。，修改readme.txt文件如下：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">this is test bingproject.</div><div class="line">git is easy use and free.</div><div class="line">learn git lesson two day.</div></pre></td></tr></table></figure>
<p>完成后提交。这时如果我们发现自己写的不想要了，感觉吧还是之前的好，想要回上一个文件。这时我们可以乘坐时光机。别急再乘坐之前我查查自己都提交了多少次，可以使用<code>git log</code>。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ git log</div></pre></td></tr></table></figure>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div></pre></td><td class="code"><pre><div class="line">commit cbf838b0da430b310a1cc37b29356a1a75980e0d</div><div class="line">Author: BING DING &lt;itbing@sina.cn&gt;</div><div class="line">Date:   Fri Mar 24 11:30:39 2017 +0800</div><div class="line"></div><div class="line">    修改了readme文件</div><div class="line"></div><div class="line">commit 6f237189555254943e4d906735de764edfa81c0b</div><div class="line">Author: BING DING &lt;itbing@sina.cn&gt;</div><div class="line">Date:   Fri Mar 24 11:28:24 2017 +0800</div><div class="line"></div><div class="line">    添加了一个 readme 文件</div></pre></td></tr></table></figure>
<p>不好看，我们还可以这样做查看。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ git log --pretty=oneline</div></pre></td></tr></table></figure>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line">cbf838b0da430b310a1cc37b29356a1a75980e0d 修改了readme文件</div><div class="line">6f237189555254943e4d906735de764edfa81c0b 添加了一个 readme 文件</div></pre></td></tr></table></figure>
<p>还可以这样</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ git log --oneline</div></pre></td></tr></table></figure>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line">cbf838b 修改了readme文件</div><div class="line">6f23718 添加了一个 readme 文件</div></pre></td></tr></table></figure>
<p>说明：你看到的一大串类似cbf838b…6f23718的是commit id（版本号），和SVN不一样，Git的commit id不是1，2，3……递增的数字，而是一个SHA1计算出来的一个非常大的数字，用十六进制表示。<br>这也是因为Git是分布式的版本控制系统，如果多人在同一个版本库里版本号都是1,2,3那后果你敢想象。</p>
<p>每提交一个新版本，实际上Git就会把它们自动串成一条时间线。如果使用可视化工具查看Git历史，就可以更清楚地看到提交历史的时间线，</p>
<p>这里Git必须知道当前版本是哪个版本，在Git中，用==HEAD==表示当前版本，上一个版本就是<code>HEAD^</code>，上上一个版本就是<code>HEAD^^</code>，当然往上100个版本写100个^比较容易数不过来，所以写成<code>HEAD~100</code>。</p>
<p><img src="http://on9lro4r3.bkt.clouddn.com/reset_1.jpg" alt="image"></p>
<p>好了，现在我们启动时光穿梭机，准备把readme.txt回退到上一个版本，也就是commid_id是“cbf838b”的那个版本，可以使用reset命令。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ git reset --hard HEAD^</div></pre></td></tr></table></figure>
<p>对比着工作空间的文件，看看是不是变回来了。</p>
<p>还可以通过版本号穿越，这么写</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ git reset --hard 6f23718</div></pre></td></tr></table></figure>
<p>此时我们再看一下日志。<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line">$ git log --oneline</div><div class="line">6f23718 添加了一个 readme 文件</div></pre></td></tr></table></figure></p>
<p>最新的那个版本已经不见了，好比从21世纪坐时光穿梭机来到了19世纪，想再回去，肿么办？<br>试试这个命令<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ git reflog</div></pre></td></tr></table></figure></p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ git reset --hard cbf838b</div></pre></td></tr></table></figure>
<p>果然，我张二蛋又回来了。</p>
<p>至此大家有没有觉得，git 的版本切换为什么是如此的快呢？</p>
<p><a href="http://on9lro4r3.bkt.clouddn.com/git-reset.mp4" target="_blank" rel="external">点击观看动画</a></p>
<p><strong>小结：</strong></p>
<ul>
<li><p>HEAD指向的版本就是当前版本，版本之间时空穿梭，使用命令<code>git reset --hard commit_id</code>。</p>
</li>
<li><p>穿梭前，用<code>git log</code>可以查看提交历史，以便确定要回退到哪个版本。</p>
</li>
<li><p>要重返未来，用<code>git reflog</code>查看命令历史，以便确定要回到未来的哪个版本。</p>
</li>
</ul>
<h2 id="4-3-工作区和暂存区"><a href="#4-3-工作区和暂存区" class="headerlink" title="4-3 工作区和暂存区"></a>4-3 工作区和暂存区</h2><p><strong>工作区</strong>（Working Directory）,比如我的bingproject文件夹就是一个工作区，</p>
<p>Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。</p>
<p><strong>版本库</strong>（Repository）</p>
<p>工作区有一个隐藏目录.git，这个不算工作区，而是Git的版本库。</p>
<p>Git的版本库里存了很多东西，其中最重要的就是称为stage（或者叫index）的暂存区，还有Git为我们自动创建的第一个分支master，以及指向master的一个指针叫HEAD。</p>
<p><img src="http://on9lro4r3.bkt.clouddn.com/work_repository.jpg" alt="image"></p>
<p>分支和HEAD的概念后面讲。</p>
<p>回想下把文件往Git版本库的过程，是分两步执行的：</p>
<ol>
<li><p>第一步是用git add把文件添加进去，实际上就是把文件修改添加到暂存区；</p>
</li>
<li><p>第二步是用git commit提交更改，实际上就是把暂存区的所有内容提交到当前分支。</p>
</li>
</ol>
<p>因为我们创建Git版本库时，Git自动为我们创建了唯一一个master分支，所以，现在，git commit就是往master分支上提交更改。</p>
<p>你可以简单理解为，需要提交的文件修改通通放到暂存区，然后，一次性提交暂存区的所有修改。</p>
<p>实战是检验的真理的唯一标准：</p>
<p>接下来，先对readme.txt做个修改,然后在工作区新增一个<code>LICENSE</code>文本文件（内容随意），</p>
<p>用git status查看一下状态：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div></pre></td><td class="code"><pre><div class="line">$ git status</div><div class="line">On branch master</div><div class="line">Changes not staged for commit:</div><div class="line">  (use &quot;git add &lt;file&gt;...&quot; to update what will be committed)</div><div class="line">  (use &quot;git checkout -- &lt;file&gt;...&quot; to discard changes in working directory)</div><div class="line"></div><div class="line">        modified:   readme.txt</div><div class="line"></div><div class="line">Untracked files:</div><div class="line">  (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)</div><div class="line"></div><div class="line">        LICENSE</div><div class="line"></div><div class="line">no changes added to commit (use &quot;git add&quot; and/or &quot;git commit -a&quot;)</div></pre></td></tr></table></figure>
<p>Git非常清楚地告诉我们，readme.txt被修改了，而LICENSE还从来没有被添加过，所以它的状态是Untracked。</p>
<p>现在，使用命令把readme.txt和LICENSE都添加到缓存区</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ git add .</div></pre></td></tr></table></figure>
<p>再用git status再查看一下：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div></pre></td><td class="code"><pre><div class="line">$ git status</div><div class="line">On branch master</div><div class="line">Changes to be committed:</div><div class="line">  (use &quot;git reset HEAD &lt;file&gt;...&quot; to unstage)</div><div class="line"></div><div class="line">        new file:   LICENSE</div><div class="line">        modified:   readme.txt</div></pre></td></tr></table></figure>
<p>现在，暂存区的状态就变成这样了：</p>
<p><img src="http://on9lro4r3.bkt.clouddn.com/stage_1.jpg" alt="image"></p>
<p>所以，<code>git add</code>命令实际上就是把要提交的所有修改放到暂存区（Stage），然后，执行<code>git commit</code>就可以一次性把暂存区的所有修改提交到分支。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div></pre></td><td class="code"><pre><div class="line">$ git commit -m &apos;新增了license并修改了readme&apos;</div><div class="line">[master 49d4a8c] 新增了license并修改了readme</div><div class="line"> 2 files changed, 2 insertions(+), 1 deletion(-)</div><div class="line"> create mode 100644 LICENSE</div></pre></td></tr></table></figure>
<p>再次查看状态<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">$ git status</div><div class="line">On branch master</div><div class="line">nothing to commit, working directory clean</div></pre></td></tr></table></figure></p>
<p>现在版本库变成了这样，暂存区就没有任何内容了：</p>
<p><img src="http://on9lro4r3.bkt.clouddn.com/stage_2.jpg" alt="image"></p>
<p><strong>小结</strong></p>
<ol>
<li>这章我们学习了，Git中存在一个暂存区。</li>
<li>这章我们学习了，Git中存在一个暂存区。</li>
<li>这章我们学习了，Git中存在一个暂存区。</li>
</ol>
<h2 id="4-4-管理修改"><a href="#4-4-管理修改" class="headerlink" title="4-4 管理修改"></a>4-4 管理修改</h2><p>现在，我们已经掌握了暂存区的概念。Git之所以优秀，下面我们再来求证两个理论：</p>
<ol>
<li>Git跟踪的是文件而非文件夹。</li>
<li>Git跟踪并管理的是修改，而非文件。</li>
</ol>
<p>理论1，我们可以创建一个data目录，然后查看当前状态,</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ git mkdir data</div></pre></td></tr></table></figure>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">$ git status</div><div class="line">On branch master</div><div class="line">nothing to commit, working directory clean</div></pre></td></tr></table></figure>
<p>说明，这便求证了，理论1.</p>
<p>理论2，接下来这么做：</p>
<ol>
<li>添加一行内容（内容随意）。</li>
<li><code>git add .</code> 到缓存区。</li>
<li>在添加一行内容（内容随心情）。</li>
<li><code>git commit -m &#39;添加了2行内容&#39;</code>提交到仓库。</li>
</ol>
<p>此时我们使用对比命令<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line">## 工作目录与暂存区区别</div><div class="line">git diff</div></pre></td></tr></table></figure></p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line">## 仓库与暂存区区别</div><div class="line">git diff --staged</div></pre></td></tr></table></figure>
<p><strong>小结</strong></p>
<ul>
<li>Git跟踪的是文件，并是不目录。</li>
<li>Git跟踪的是文件的每次修改，如果不add到暂存区，那就不会加入到commit中。</li>
</ul>
<h2 id="4-5-撤销修改"><a href="#4-5-撤销修改" class="headerlink" title="4-5 撤销修改"></a>4-5 撤销修改</h2><p>接下来我们说一说，如果你把内容修改错了，想要撤销怎么办？</p>
<p>这里分两种情况：</p>
<ol>
<li>一种是自修改后还没有被放到暂存区，现在，撤销修改就回到和版本库一模一样的状态；</li>
</ol>
<p>模拟场景，我再readme.txt 加入这么一句话。<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div></pre></td><td class="code"><pre><div class="line">this is test bingproject.</div><div class="line">git is easy use and free.</div><div class="line">learn git two .</div><div class="line">Where is my bonus?</div></pre></td></tr></table></figure></p>
<p>查看状态<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div></pre></td><td class="code"><pre><div class="line">$ git status</div><div class="line">On branch master</div><div class="line">Changes not staged for commit:</div><div class="line">  (use &quot;git add &lt;file&gt;...&quot; to update what will be committed)</div><div class="line">  (use &quot;git checkout -- &lt;file&gt;...&quot; to discard changes in working directory)</div><div class="line"></div><div class="line">        modified:   readme.txt</div></pre></td></tr></table></figure></p>
<p>根据提示：这样做<code>git checkout -- &lt;file&gt;...</code>,我可以抛弃工作目录的变化。<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ git checkout -- readme.txt</div></pre></td></tr></table></figure></p>
<p>我照做了，说的真是一点都不假。</p>
<ol>
<li>一种是已经添加到暂存区后，又作了修改，现在，撤销修改就回到添加到暂存区后的状态。</li>
</ol>
<p>重复场景1，这次不同的是我把修改提交至暂存区，看提示：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div></pre></td><td class="code"><pre><div class="line">$ git status</div><div class="line">On branch master</div><div class="line">Changes to be committed:</div><div class="line">  (use &quot;git reset HEAD &lt;file&gt;...&quot; to unstage)</div><div class="line"></div><div class="line">        modified:   readme.txt</div></pre></td></tr></table></figure>
<p>提示说这么做<code>git reset HEAD &lt;file&gt;...</code>可到撤销暂存区。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">$ git reset HEAD readme.txt</div><div class="line">Unstaged changes after reset:</div><div class="line">M       readme.txt</div></pre></td></tr></table></figure>
<p>再次查看状态<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div></pre></td><td class="code"><pre><div class="line">$ git status</div><div class="line">On branch master</div><div class="line">Changes not staged for commit:</div><div class="line">  (use &quot;git add &lt;file&gt;...&quot; to update what will be committed)</div><div class="line">  (use &quot;git checkout -- &lt;file&gt;...&quot; to discard changes in working directory)</div><div class="line"></div><div class="line">        modified:   readme.txt</div></pre></td></tr></table></figure></p>
<p>走心看，这不是到场景1了吗？</p>
<p>既然到这了，回家的路终于又见了光明。</p>
<p><strong>小结：</strong></p>
<ul>
<li><p>场景1：当你改乱了工作区某个文件的内容，想直接丢弃工作区的修改时，用命令git checkout – file。</p>
</li>
<li><p>场景2：当你不但改乱了工作区某个文件的内容，还添加到了暂存区时，想丢弃修改，分两步，第一步用命令git reset HEAD file，就回到了场景1，第二步按场景1操作。</p>
</li>
<li><p>场景3：已经提交了不合适的修改到版本库时，想要撤销本次提交，参考版本回退一节，不过前提是没有推送到远程库。</p>
</li>
</ul>
<h2 id="4-6-删除文件"><a href="#4-6-删除文件" class="headerlink" title="4-6 删除文件"></a>4-6 删除文件</h2>
      
    </div><!-- .entry-content -->

    <footer class="entry-meta">
    <a href="/2017/04/05/memcached/">
    <time datetime="2017-04-04T16:00:00.000Z" class="entry-date">
        2017-04-05
    </time>
</a>
    
  <span class="article-delim">&#8226;</span>
  <div class="article-category">
  <a class="article-category-link" href="/categories/mysql优化/">mysql优化</a>
  </div>

    
    </footer>
</article>






  
  

</div></div>
        <div id="secondary" class="widget-area" role="complementary">
  
    <aside id="search" class="widget widget_search"><form role="search" method="get" accept-charset="utf-8" id="searchform" class="searchform" action="//google.com/search">
    <div>
        <input type="text" value="" name="s" id="s" />
        <input type="submit" id="searchsubmit" value="搜索" />
    </div>
</form></aside>
  
    
  
    
  <aside class="widget">
    <h3 class="widget-title">Categories</h3>
    <div class="widget-content">
      <ul class="category-list"><li class="category-list-item"><a class="category-list-link" href="/categories/mysql优化/">mysql优化</a><span class="category-list-count">1</span></li></ul>
    </div>
  </aside>

  
    
  <aside class="widget">
    <h3 class="widget-title">Recents</h3>
    <div class="widget-content">
      <ul>
        
          <li>
            <a href="/2017/04/05/hello-world/">Hello World</a>
          </li>
        
          <li>
            <a href="/2017/04/05/memcached/">memcached</a>
          </li>
        
      </ul>
    </div>
  </aside>

  
    
  
    
  
</div>
      </div>
      <footer id="colophon" role="contentinfo">
    <p>&copy; 2017 zongfang
    All rights reserved.</p>
    <p>Powered by <a href="http://hexo.io/" target="_blank">Hexo</a></p>
</footer>
    <script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"1","bdMiniList":false,"bdPic":"","bdStyle":"2","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>

<script src="/js/jquery-2.0.3.min.js"></script>


  <link rel="stylesheet" href="/fancybox/jquery.fancybox.css">
  <script src="/fancybox/jquery.fancybox.pack.js"></script>


<script src="/js/script.js"></script>

<script src="/js/navigation.js"></script>

<div id="bg"></div>

  </div>
</body>
</html>